package com.vogue.supplymall.common.config;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.vogue.supplymall.common.config.CurrencyPropertiesConfig;

/**
 * SpringBoot启动配置文件基类
 * @author cy
 */
public class BaseAppConfig extends AkkaBaseConfig {

    public static final Logger LOGGER_BASEAPPCONFIG = LoggerFactory.getLogger(BaseAppConfig.class);
    
    @Resource(name="currencyPropertiesConfig")
    private CurrencyPropertiesConfig propertiesConfig;

    /**
     * @return 服务启动调试等级
     */
    @Override
    public String getAkkaLoglevel() {
        return propertiesConfig.getAkkaLoglevel();
    }
    /**
     * @return 服务启动端口
     */
    @Override
    public String getAkkaRemoteNettyTcpPort() {
        return propertiesConfig.getAkkaRemoteNettyTcpPort();
    }
    /**
     * @return 服务启动ip
     */
    @Override
    public String getAkkaRemoteNettyTcpHostname() {
        return propertiesConfig.getAkkaRemoteNettyTcpHostname();
    }
    /**
     * @return 服务启动名称
     */
    @Override
    public String getAkkaRemoteNettyTcpServername() {
        return propertiesConfig.getAkkaRemoteNettyTcpServername();
    }
    /**
     * @return 服务启动检测的包
     */
    @Override
    public String getAkkaScanPackage() {
        return propertiesConfig.getAkkaScanPackage();
    }
    /**
     * @return 作为客户端启动配置的信息JSON串
     */
    @Override
    public String getAkkaClientInfo() {
        return propertiesConfig.getAkkaClientInfo();
    }
    /**
     * @return 服务最小数量
     */
    @Override
    public Integer getAkkaRemoteMin() {
        try {
            return Integer.parseInt(propertiesConfig.getAkkaRemoteNettyTcpMin());
        } catch (NumberFormatException ex) {
            LOGGER_BASEAPPCONFIG.error("akka服务最小服务数配置错误");
            return null;
        }      
    }
    /**
     * @return 服务最大数量
     */
    @Override
    public Integer getAkkaRemoteMax() {
        try {
            return Integer.parseInt(propertiesConfig.getAkkaRemoteNettyTcpMax());
        } catch (NumberFormatException ex) {
            LOGGER_BASEAPPCONFIG.error("akka服务最大服务数配置错误");
            return null;
        }   
    }
    /**
     * @return 服务最大数量
     */
    @Override
    public String getAkkaRemoteMaxSize() {
        return propertiesConfig.getAkkaRemoteNettyTcpMaxsize();
    }    
}
